home *** CD-ROM | disk | FTP | other *** search
/ Network Support Library / RoseWare - Network Support Library.iso / apidev / vap.arc / VAP.ASM < prev    next >
Assembly Source File  |  1988-05-03  |  5KB  |  243 lines

  1. ;*****************************************************************************
  2. ;*
  3. ;* Program Name:  VAP_PRIMITIVES
  4. ;*
  5. ;* Filename:      vap.asm (SVAP.LIB)
  6. ;*
  7. ;* Version:      1.0
  8. ;*
  9. ;* Programmers:      Bryan Sparks
  10. ;*
  11. ;* Comments:      This file is a library of calls defined for the VAP 
  12. ;*          interface. Written in MASM 4.0 and assuming SMALL
  13. ;*          MSC 4.0 C code (or MSC 5.0).
  14. ;*
  15. ;*****************************************************************************
  16.     name    VAPLibraryModule
  17.  
  18. PGroup    group    _TEXT
  19.     assume cs: PGroup
  20.  
  21. _TEXT    segment public 'CODE'
  22.  
  23.     public    _VAllocateSegment
  24.     public    _VChangeToDataSegment
  25.     public    _VSpawnProcess
  26.     public    _VInitializationComplete
  27.     public    _VKillProcess
  28.     public    _VChangeProcess
  29.     public    _VDelayProcess
  30.     public    _VSleepProcess
  31.     public    _VWakeUpProcess
  32.     public    _VConsoleError
  33.     public    _VGetProcessID
  34.     public    _SetEStoDS    
  35.     public    _VAPAttachToFileServer
  36.  
  37.     extrn    ProcessControlServices: dword
  38.  
  39. AllocateSegment         equ    0
  40. ChangeToDataSegment        equ    1
  41. ChangeSegmentToCode        equ    2
  42. DeclareSegmentAsData        equ    3
  43. DeclareExtendedSegment        equ    4
  44. SpawnProcess            equ    5
  45. SetPassThroughShellMode        equ    6
  46. InitializationComplete        equ    7
  47. KillProcess            equ    8
  48. ChangeProcess            equ    9
  49. DelayProcess            equ    10
  50. GetProcessID            equ    11
  51. SleepProcess            equ    12
  52. WakeUpProcess            equ    13
  53. SetHardwareInterruptVector    equ    14
  54. GetInterruptVector        equ    15
  55. SetInterruptVector        equ    16
  56. CalculateAbsoluteAddress    equ    17
  57. SetExtendedProcessorError    equ    18
  58. ConsoleError            equ    19
  59. GetFileServerName        equ    20
  60. AttachToFileServer        equ    21
  61. MapFileServerNameToNumber    equ    22
  62.  
  63.  
  64. _VAllocateSegment:
  65.     push    bp
  66.     mov    bp, sp
  67.     mov    ax, [bp + 2 + 2]        ; paragraph amount
  68.     mov    di, AllocateSegment
  69.     push    es
  70.     jmp    ProcessControlServicesCALL
  71.  
  72. _VChangeToDataSegment:
  73.     push    bp
  74.     mov    bp, sp
  75.     mov    ax, [bp + 2 + 2]        ; segment value
  76.     mov    di, ChangeToDataSegment
  77.     push    es
  78.     jmp    ProcessControlServicesCALL
  79.  
  80. _VSpawnProcess:
  81.     push    bp
  82.     mov    bp, sp
  83.     mov    cx, [bp + 2 + 2]        ; process entry
  84.     mov    dx, ds                ; process data segment
  85.     mov    bx, cs                ; assume near
  86.     mov    bp, cs
  87.     mov    di, SpawnProcess
  88.     push    es
  89.     jmp    ProcessControlServicesCALL
  90.  
  91. _VInitializationComplete:
  92.     push    bp
  93.     mov    di, InitializationComplete
  94.     push    es
  95.     jmp    ProcessControlServicesCALL
  96.  
  97. _VKillProcess:
  98.     push    bp
  99.     mov    di, KillProcess
  100.     push    es
  101.     jmp    ProcessControlServicesCALL
  102.  
  103. _VChangeProcess:
  104.     push    bp
  105.     mov    di, ChangeProcess
  106.     push    es
  107.     jmp    ProcessControlServicesCALL
  108.  
  109. _VDelayProcess:
  110.     push    bp
  111.     mov    bp, sp
  112.     mov    dx, [bp + 2 + 2]        ;delay amount
  113.     mov    di, DelayProcess
  114.     push    es
  115.     jmp    ProcessControlServicesCALL
  116.  
  117. _VSleepProcess:
  118.     push    bp
  119.     mov    di, SleepProcess
  120.     push    es
  121.     jmp    ProcessControlServicesCALL
  122.  
  123. _VWakeUpProcess:
  124.     push    bp
  125.     mov    bp, sp
  126.     mov    bx, [bp + 2 + 2]        ; sleeping process ID
  127.     mov    di, WakeUpProcess
  128.     push    es
  129.     jmp    ProcessControlServicesCALL
  130.  
  131. _VConsoleError:
  132.     push    bp
  133.     mov    bp, sp
  134.     mov    si, [bp + 2 + 2]        ; display error on console
  135.     mov    di, ConsoleError
  136.     push    es
  137.     jmp    ProcessControlServicesCALL
  138.  
  139.  
  140. _VGetProcessID:
  141.     push    bp
  142.     push    es
  143.     mov    di, GetProcessID
  144.  
  145. ProcessControlServicesCALL proc    near
  146.     call     dword ptr cs:ProcessControlServices
  147.     pop    es
  148.     pop    bp
  149.     ret
  150. ProcessControlServicesCALL endp
  151.  
  152. _VAPAttachToFileServer    proc    near
  153.     push    bp
  154.     mov    bp, sp
  155.  
  156.     mov    ax, [bp+4]
  157.     mov    si, ax
  158.     mov    di, 15h
  159.     call     dword ptr cs:ProcessControlServices
  160.     xor     ah, ah
  161.     xor    dh, dh
  162.     mov    si, [bp+6]
  163.     mov    [si], dx
  164.  
  165.     pop    bp
  166.     ret
  167. _VAPAttachToFileServer    endp
  168.  
  169.  
  170.  
  171. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  172. ;    ConsoleControlServices Calls
  173. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  174.  
  175.     public    _VClearScreen
  176.     public    _VPrintString
  177.     public    _VReadKeyboard
  178.     public     _Interrupt3
  179.     extrn    ConsoleControlServices: dword
  180.  
  181. _Interrupt3    proc    near
  182.     int    3
  183. _Interrupt3    endp
  184.  
  185. _VClearScreen proc    near
  186.     push    bp
  187.     mov    bp, sp
  188.     mov    di, 0                 ;0 is ClearScreen
  189.     call     dword ptr cs:ConsoleControlServices
  190.     pop    bp
  191.     ret
  192. _VClearScreen    endp
  193.  
  194. _VPrintString proc    near
  195.     push    bp
  196.     mov    bp, sp
  197.     mov    ax, [bp + 2 + 8]
  198.     push    ax
  199.     push    ds
  200.     mov    ax, [bp + 2 + 6]
  201.     push    ax
  202.     mov    ax, [bp + 2 + 4]
  203.     push    ax
  204.     mov    ax, [bp + 2 + 2]
  205.     push    ax
  206.     mov    di, 1
  207.     call     dword ptr cs:ConsoleControlServices
  208.     mov    sp, bp
  209.     pop    bp
  210.     ret
  211. _VPrintString    endp
  212.  
  213. _VReadKeyboard    proc    near
  214.     push    bp
  215.     mov    bp, sp
  216.     mov    ax, [bp + 2 + 4]
  217.     push    ax
  218.     push    ds
  219.     mov    ax, [bp + 2 + 2]
  220.     push    ax
  221.     mov    di, 2
  222.  
  223.     call     dword ptr cs:ConsoleControlServices
  224.     mov    sp, bp
  225.     pop    bp
  226.     ret
  227.  
  228. _VReadKeyboard    endp
  229.  
  230.  
  231. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  232. ;    Misc Calls
  233. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  234.  
  235. _SetEStoDS    proc     near
  236.     push    ds
  237.     pop    es
  238.     ret
  239. _SetEStoDS    endp
  240.  
  241. _TEXT    ends
  242.     end
  243.